توانمندي هاي گريد محاسباتي
هنگامي كه يك گريد محاسباتي سازماندهي مي شود، بايد يك سري از نيازمندي هاي كاربران را برطرف كند. براي اينكه نيازهاي موجو د به طور بهتري با توانمند ي هاي يك گريد منطبق گردد، بايد دلايل استفاده از محاسبات گريدي را در نظر داشته باشيم. در اين بخش به بررسي توانمندي هاي مهم محاسبات گريدي مي پردازيم.
2-3-1. بهره برداري از منابع بدون استفاده
سادهترين راه استفاده از محاسبات گريدي اين است كه يك برنامه ي كاربردي موجود در يك ماشين را بر روي ماشين ديگري اجرا كنيم . ماشيني كه برنامه ي كاربردي در حالت عادي بر روي آن در حال اجرا مي تواند بر روي يك ماشين بدون استفاده كه در جاي ديگري در گريد موجود است، اجرا شود.
حداقل دو پيش نياز[1] براي اين مسأله وجود دارد : اول اينكه برنامه ي كاربردي بايد بتواند بدون ايجاد كردن سربار غيرضروري، در يك ماشين غير از ماشيني كه در آن قرار دارد، اجرا شود . ثانياً، ماشين مقصد بايد سخت افزار و نرم افزار و منابع مورد نياز برنامه را دارا باشد.
براي مثال يك برنامه ي دسته اي[2] كه زمان قابل ملاحظه اي را صرف پردازش يك مجموعه از داده هاي ورودي مي كند تا يك سري خروجي را توليد كند، ممكن است ايده آل ترين و ساده ترين كاربرد براي يك گريد محاسباتي باشد . اگر تعداد ورودي ها و خروجي ها زياد باشد، طراحي و تفكر بيشتري براي استفاده ي بهينه از گريد براي اين كار مورد نياز است . معمولاً اجراي يك برنامه ي پردازش كلمه[3] بر روي يك ماشين ديگر درگريد بي معني است؛ زيرا باعث بوجود آمدن تأخيرها و خطاهاي بالقوه ي زيادي مي شود[34].
در بيشتر سازمانها، تعداد زيادي منابع پردازشي بدون استفاده وجود دارد . بيشتر كامپيوترهاي روميزي، كمتر از پنج درصد زمان، فعاليت مي كنند. در بعضي از سازمانها حتي ماشين سرور نيز نسبتاً بيكار است. محاسبات گريدي چارچوبي را براي بهره برداري از اين منابع بيكار فراهم مي كند و بنابراين اين امكان را بوجود مي آورد كه به مقدار زيادي، استفاده از منابع افزايش پيدا كند.
منابع پردازشي تنها منابعي نيستند كه ممكن است بدون استفاده باشند . بعضي اوقات، ماشينها داراي فضاي ذخيره سازي زيادي هستند كه استفاده نمي شود. محاسبات گريدي و به طور خاص يك گريد داده اي مي تواند امكان جمع نمودن اين فضاها و تبديل آن به يك انبار داده ي مجازي بسيار بزرگتر را فراهم كند . به اين ترتيب، موجب مي شود كه كارايي و قابليت اطمينان نسبت به يك ماشين واحد بهبود يابد .اگر يك كار دسته اي بخواهد مقدار زيادي داده را از ورودي دريافت كند، مي توان نسخه هاي يكساني از اين داده ها را در نقاط مهم گريد قرار داد. بنابراين اگر يك برنامه بخواهد بر روي يك ماشين راه دور[4] اجرا شود، لازم نيست داده هاي مورد نياز آن نيز جابجا شوند، بلكه دادهها در نزديكي و يا در خود آن ماشين موجود خواهند بود.
وظيفهي ديگر گريد محاسباتي بهبود توازن در استفاده از منابع مي باشد[38][39][41]. در يك سازمان ممكن است در زمانهايي مقدار فعاليتها به اوج خود برسد كه باعث افزايش تقاضاي منابع مي شود. اگر برنامه هاي كاربردي، قابليت اجرا در گريد را داشته باشند، در چنين مواقعي مي توان آنها را براي اجرا به ماشين هاي بدون استفاده منتقل نمود .در واقع، بعضي از پياده سازي هاي گريد محاسباتي مي توانند كارهاي نيمه تمام را بين ماشينها جابجا كنند . در حالت كلي، يك گريد مي تواند توازن بار محاسباتي را در مجموعه هاي گسترده تري از منابع انجام دهد . اين منابع مي تواند شامل پردازنده، حافظه ي جانبي و انواع ديگري از منابع موجود در گريد باشد.
2-3-2. موازي سازي پردازنده ها
ظرفيت انبوه پردازنده هاي موازي يكي از ويژگي هاي جذاب گريدهاي محاسباتي مي باشد. علاوه بر نيازهاي كاملاً علمي، اين قدرت محاسباتي مي تواند باعث بوجود آمدن تحول بزرگي در صنايعي مانند حوزه ي پزشكي و زيست شناسي، مدل سازي مالي، اكتشاف نفت، متحرك سازي تصاوير و بسياري ديگر شود.
ويژگي مشترك چنين استفاده هايي، استفاده از الگوريتم هايي براي تقسيم برنامه هاي كاربردي به بخش هاي اجرايي مستقل مي باشد. يك برنامه ي كاربردي قابل اجرا در گريد كه كار محاسباتي دارد را مي توان به صورت تعداد زيادي كارهاي كوچك در نظر گرفت كه هر كدام بر روي ماشين متفاوتي در گريد اجرا مي شوند. هر اندازه كه اين كارها به ارتباط با يكديگر نياز نداشته باشند، برنامه ي كاربردي قابليت مقياس پذيري بيشتري خواهد داشت . يك برنامه ي كاربردي كاملاً مقياس پذير[5]، اگر از ده پردازنده براي كارهاي خود استفاده كند، اجراي آن ده برابر زودتر تمام مي شود[40].
موانعي در برابر مقياس پذيري كامل وجود دارد . اولين مانع، الگوريتم هايي هستند كه براي تقسيم برنامه هاي كاربردي بين تعداد زيادي پردازنده استفاده مي شوند. اگر الگوريتم فقط به تعداد محدودي بخش هاي مستقل اجرايي قابل تقسيم باشد، مانعي در برابر مقياس پذيري خواهد بود . دومين مانع هنگامي بوجود مي آيد كه بخشهاي اجرايي كاملاً مستقل از هم نباشند . اين باعث درگيري كارها با هم مي شود و مقياس پذيري را محدود مي كند . براي مثال، اگر لازم باشد همه ي كارها عمل نوشتن و خواندن از يك فايل يا پايگاه داده ي مشترك را انجام دهند، محدوديت هاي دسترسي به آن فايل يا پايگاه داده، يك عامل محدودكننده براي مقياس پذيري برنامه ي كاربردي خواهد بود . دلايل ديگر ايجاد درگيري بين كارها عبارتند از : تأخير در تبادل پيام بين كارها، ظرفيت ارتباطات در شبكه، پروتكل هاي همزمان سازي، پهناي باند ارتباط با حافظه هاي جانبي و وسايل ديگر، و تأخيرهايي كه با نيازهاي بلادرنگ تداخل پيدا مي كند.
2-3-3. برنامه هاي كاربردي
براي اينكه يك برنامه ي كاربردي بتواند بر روي گريد اجرا شود، عوامل زيادي را بايد در نظر گرفت . يكي از آنها اين است كه بايد قبول كرد كه همه ي برنامه هاي كاربردي اين قابليت را ندارند كه به صورت موازي بر روي گريد محاسباتي اجرا شوند و در عين حال، مقياس پذيري قابل توجهي نيز بدست بيايد . علاوه بر آن، در عمل، هيچ ابزار خودكاري وجود ندارد كه برنامه هاي كاربردي را طوري تغيير دهد تا بتوانند از قابليت هاي موازي گريدهاي محاسباتي استفاده كنند . ابزارهايي وجود دارند كه اين مهارت را به طراحان برنامه هاي كاربردي مي دهند كه بتوانند برنامه هاي موازي را به مرحله ي پياده سازي برسانند . البته دانش تبديل خودكار برنامه هاي كاربردي در مراحل ابتدايي قرار دارد . اين كار واقعاً مشكل است و حتي در شرايطي كه امكان پذير باشد به دانش رياضيات و مهارت هاي بالاي برنامه نويسي نياز دارد . اغلب برنامه هاي كاربردي داراي محاسبات زياد كه امروزه پياده سازي مي شوند، داراي ساختار موازي هستند و اگر استانداردها و پروتكل هاي جديد گريد را در خود نداشته باشند، به راحتي مي توان قابليت اجرا بر روي گريدهاي محاسباتي را در آنها بوجود آورد.
2-3-4. منابع مجازي و سازمانهاي مجازي
كمك مهم ديگري كه يك گريد محاسباتي به ما مي كند اين است كه همكاري بين تعداد زيادي سيستمهاي متصل به هم در يك محدوده ي وسيع را امكان پذير و ساده مي سازد . در گذشته، محاسبات توزيع شده در حال رسيدن به اين مرحله از همكاري ها بود و تا حدي نيز به آن دست يافته بود . اكنون محاسبات گريدي اين توانايي ها را حتي در مقياس وسيع تري نسبت به آنچه تصور مي شد در اختيار قرار مي دهد . همچنين همراه با آن، استانداردهاي مهمي را ارائه مي كند كه سيستم هاي بسيار ناهمگون را قادر مي سازد تا با يكديگر همكاري كنند و به اين ترتيب، تصويري از يك سيستم محاسباتي مجازي بزرگ كه منابع مجازي بسياري را فراهم مي كند ايجاد شود .
اين ديد يكپارچه در شكل 2-2 نشان داده شده است.
شکل 2-2: بازنمايي منابع ناهمگون و پراكنده به صورت يك سازمان مجازي واحد توسط گريد
2-3-5. دسترسي به منابع اضافي
علاوه بر منابع پردازشي و ذخيره سازي اطلاعات، يك گريد مي تواند دسترسي به تعداد زيادي از منابع ديگر و همچنين به تجهيزات، نرم افزارها، جوازهاي [6]استفاده و خدمات خاص ديگر را فراهم كند . منابع اضافي مي تواند در تعداد و يا در ظرفيت هاي اضافي فراهم شود.
براي مثال، اگر يك كاربر نياز داشته باشد كه به منظور پياده سازي يك سيستم جستجوي داده كاوي، پهناي باند ارتباط خود با شبكه ي جهاني اينترنت را افزايش دهد، كار او مي تواند بين چندين ماشين موجود در گريد كه هركدام ارتباط مستقلي با شبكه ي جهاني برقرار كرده است تقسيم شود . در اين صورت، مجموع توانايي هاي جستجو در اينترنت چند برابر مي شود؛ زيرا هر ماشين ارتباط جداگانه اي با اينترنت دارد . اگر اين ماشين ها مجراهاي ارتباطي خود را در گذشته به اشتراك گذاشته بودند، افزايش چنداني براي پهناي باند دسترسي به اينترنت بوجود نمي آمد.
بعضي از ماشين ها ممكن است جواز استفاده از يك نرم افزار گران قيمتي را كه بر روي آنها نصب شده است در اختيار داشته باشند . كارهاي مورد نظر يك كاربر كه به چنين نرم افزاري نياز دارد مي تواند به ماشين مربوطه فرستاده شود تا از جواز استفاده از نرم افزار موجود بر روي آن ماشين بهره ببرد.
بعضي از ماشين ها در گريد ممكن است داراي وسايل جانبي خاصي باشند . بسياري از ما از چاپگرهاي دور استفاده كرده ايم تا از توانمندي هاي چاپ رنگي پيشرفته و يا سرعت بالاي آنها استفاده كنيم . به طور مشابه، مي توان از يك گريد براي استفاده از تجهيزات ويژه ي ديگر استفاده كرد . براي نمونه، يك ماشين ممكن است داراي يك دستگاه ذخيره سازي داده بر روي لوح DVD باشد و ديگران مي توانند از طريق گريد، براي انتشار سريع اطلاعات از آن استفاده كنند . همچنين بعضي از ماشين ها در گريد مي توانند به يك ميكروسكوپ الكتروني متصل باشند كه قابليت كار از راه دور را داراست و كاربران گريد در ساير نقاط مي توانند از آن استفاده كنند.
--------------------------------------------------------------------------------
[1] overhead
[2] batch application
[3] word processing
[4] remote
[5] scalability
[6] license